DynamoDB এর প্রধান উপাদান হল Tables। টেবিলগুলি হল সেই স্থান যেখানে আপনার ডেটা সংরক্ষিত থাকে। DynamoDB-তে টেবিল তৈরি এবং ম্যানেজমেন্ট একটি সহজ প্রক্রিয়া, তবে এটি কিছু গুরুত্বপূর্ণ ধারণা এবং কনফিগারেশন থাকতে পারে, যেমন Primary Key, Sort Key, Provisioned Capacity, এবং On-Demand Capacity। এই টিউটোরিয়ালে আমরা DynamoDB টেবিল তৈরি এবং ম্যানেজ করার মৌলিক ধারণাগুলি নিয়ে আলোচনা করব।
এখন আপনাকে টেবিলের নাম এবং প্রাথমিক কী (Primary Key) কনফিগার করতে হবে।
Primary Key কনফিগারেশন:
উদাহরণস্বরূপ:
UserId
(String)OrderId
(String)DynamoDB টেবিলের মধ্যে ডেটা ইনসার্ট করার জন্য আপনি PutItem API বা Insert কমান্ড ব্যবহার করতে পারেন। এটি একটি একক রেকর্ড ডেটা টেবিলে যোগ করে।
ধাপ ১: PutItem দিয়ে ডেটা ইনসার্ট করা
আপনি DynamoDB টেবিলের মধ্যে বিদ্যমান ডেটা আপডেট করতে পারেন UpdateItem API এর মাধ্যমে।
ধাপ ১: UpdateItem দিয়ে ডেটা আপডেট করা
আপনি টেবিল থেকে ডেটা মুছতে পারেন DeleteItem API ব্যবহার করে।
ধাপ ১: DeleteItem দিয়ে ডেটা ডিলিট করা
DynamoDB অটোমেটিক্যালি আপনার টেবিল স্কেল করতে পারে, যদি আপনি Auto Scaling কনফিগার করেন। আপনি নির্দিষ্ট থ্রেশহোল্ড সেট করতে পারেন, এবং যখন ট্রাফিক বৃদ্ধি পাবে, DynamoDB স্বয়ংক্রিয়ভাবে স্কেল করে।
DynamoDB টেবিলের মধ্যে Secondary Indexes তৈরি করা খুবই গুরুত্বপূর্ণ, বিশেষত যখন আপনি বিভিন্ন ধরণের কুয়েরি করতে চান।
এটি DynamoDB টেবিল তৈরি এবং ম্যানেজমেন্ট সম্পর্কিত একটি মৌলিক গাইড। আপনি যদি আরও গভীরে যেতে চান, তাহলে আমি আরও বিস্তারিত ব্যাখ্যা দিতে পারব।
DynamoDB তে নতুন টেবিল তৈরি করা অত্যন্ত সহজ। আপনি AWS Management Console, AWS CLI, অথবা SDK ব্যবহার করে DynamoDB টেবিল তৈরি করতে পারেন। এখানে, আমি AWS Management Console ব্যবহার করে DynamoDB তে একটি নতুন টেবিল তৈরি করার পদক্ষেপগুলি বিস্তারিতভাবে দেখাবো।
এখন আপনি টেবিল তৈরি করার জন্য প্রয়োজনীয় কনফিগারেশন সেট করবেন। নিচে গুরুত্বপূর্ণ সেটিংস গুলি বর্ণনা করা হলো:
Users
বা Products
।UserID
বা ProductID
।Timestamp
বা OrderID
।একবার টেবিল তৈরি হয়ে গেলে, আপনি বিভিন্ন Data Operations করতে পারেন যেমন:
আপনি AWS CLI, SDK, বা কনসোলের মাধ্যমে এই অপারেশনগুলি চালাতে পারবেন।
এখন আপনি DynamoDB তে নতুন টেবিল তৈরি করতে প্রস্তুত। যদি আরও কোনও প্রশ্ন থাকে বা অন্য কোনও সাহায্য প্রয়োজন হয়, তাহলে আমাকে জানাবেন!
Amazon DynamoDB একটি NoSQL ডেটাবেস যা টেবিলের মধ্যে Primary Key ব্যবহার করে ডেটা স্টোর এবং রিট্রিভ করার প্রক্রিয়া পরিচালনা করে। DynamoDB এ ডেটার সঠিকভাবে অ্যাক্সেস এবং সঞ্চয়ের জন্য Primary Key খুবই গুরুত্বপূর্ণ।
ডাইনামিক ডেটা মডেল এবং স্কেলেবিলিটি নিশ্চিত করার জন্য, DynamoDB দুই ধরনের কিপ্রকারের কনফিগারেশন সমর্থন করে:
এই কনফিগারেশনগুলির মাধ্যমে ডেটা বিতরণ এবং সংরক্ষণ কার্যকরভাবে পরিচালিত হয়।
প্রাথমিক কীটি প্রতিটি টেবিলের জন্য একেবারে অপরিহার্য। এটি একটি একক বা দুটি অংশের সমন্বয়ে গঠিত হতে পারে:
Partition Key হল ডেটা প্রাথমিক চিহ্নিতকারী যা DynamoDB ডেটাবেসকে জানায় কোন ডেটা কোথায় সঞ্চিত হবে। এটি একটি ইউনিক মান যা পুরো টেবিলের মধ্যে পার্টিশন তৈরি করতে ব্যবহৃত হয়।
Partition Key: UserID
Value: 12345
এতে UserID
এককভাবে ডেটাকে বিভিন্ন পার্টিশনে ভেঙে সঞ্চিত করবে।
Sort Key হল দ্বিতীয় কিপ্রকার যা একটি টেবিলের মধ্যে ডেটাকে আরও সুসংগঠিত করতে সাহায্য করে। এটি Partition Key এর সাথে কাজ করে এবং ডেটা সঠিকভাবে সাজানোর এবং ফিল্টার করার জন্য ব্যবহৃত হয়।
Partition Key: UserID
Sort Key: InvoiceDate
Value: 2024-01-15
এতে, একেকটি UserID এর সাথে যুক্ত সমস্ত ইনভয়েস গুলি InvoiceDate এর ভিত্তিতে সাজানো হবে।
আপনি যখন DynamoDB টেবিল তৈরি করেন, তখন Primary Key কনফিগার করতে হবে। এটি আপনি AWS Management Console থেকে অথবা AWS CLI বা SDK এর মাধ্যমে কনফিগার করতে পারেন।
UserID
), এবং তার জন্য ডেটা টাইপ নির্বাচন করুন (যেমন String
, Number
ইত্যাদি)।InvoiceDate
), এবং তার জন্য ডেটা টাইপ নির্বাচন করুন।AWS CLI ব্যবহার করে DynamoDB টেবিল তৈরি করার জন্য, নিচের কমান্ডটি ব্যবহার করুন:
aws dynamodb create-table \
--table-name Users \
--attribute-definitions \
AttributeName=UserID,AttributeType=S \
AttributeName=InvoiceDate,AttributeType=S \
--key-schema \
AttributeName=UserID,KeyType=HASH \
AttributeName=InvoiceDate,KeyType=RANGE \
--provisioned-throughput \
ReadCapacityUnits=5,WriteCapacityUnits=5
এখানে:
--key-schema
: Partition Key (UserID
) এবং Sort Key (InvoiceDate
) কনফিগার করা হয়েছে।--provisioned-throughput
: টেবিলের জন্য পাঠযোগ্য এবং লেখার ক্ষমতা নির্ধারণ করা হয়েছে (যেমন ৫ RCU এবং ৫ WCU)।DynamoDB এর Primary Key এবং Sort Key কনফিগারেশন ব্যবহারের মাধ্যমে আপনি আপনার ডেটাবেস টেবিলের পারফরম্যান্স ও কার্যকারিতা বৃদ্ধি করতে পারেন। Partition Key ডেটাকে পার্টিশন করে এবং Sort Key ডেটাকে নির্দিষ্ট সাজানো বা ফিল্টার করতে সাহায্য করে। এই কনফিগারেশনগুলি ডেটার কাঠামোকে আরও উন্নত, স্কেলযোগ্য এবং ম্যানেজেবল করে তোলে।
Amazon DynamoDB Table Capacity Mode দুটি মূল অপশন প্রদান করে: Provisioned এবং On-Demand। প্রতিটি অপশন আপনাকে ডেটাবেসের কর্মক্ষমতা এবং খরচের উপর বিভিন্ন স্তরের নিয়ন্ত্রণ প্রদান করে। সঠিক মডেলটি নির্বাচন করা আপনার অ্যাপ্লিকেশনের ট্রাফিক এবং স্কেলিং চাহিদার উপর নির্ভর করে।
এখানে আমরা Provisioned এবং On-Demand মডেলের মধ্যে প্রধান পার্থক্য এবং প্রতিটির সুবিধা ও অসুবিধা আলোচনা করব।
Provisioned Capacity Mode হল সেই ডেটাবেস কনফিগারেশন যেখানে আপনি প্রতি সেকেন্ডে কতটি রিড (Read) এবং রাইট (Write) অপারেশন প্রয়োজন হবে তা পূর্বনির্ধারণ করেন।
On-Demand Capacity Mode হল একটি ফ্লেক্সিবল অপশন, যা আপনাকে ট্রাফিকের উপর ভিত্তি করে অটোমেটিক্যালি স্কেল করতে দেয়। আপনাকে পূর্বনির্ধারিত RCU এবং WCU নির্ধারণ করতে হয় না। DynamoDB স্বয়ংক্রিয়ভাবে ইনকামিং রিড এবং রাইট ট্র্যাফিকের ভিত্তিতে প্রয়োজনীয় রিসোর্স প্রদান করবে।
ক্যাপাসিটি মোড | কখন ব্যবহার করবেন | ফায়দা | সীমাবদ্ধতা |
---|---|---|---|
Provisioned | যখন আপনি পূর্বানুমান করতে পারেন কতটুকু রিড এবং রাইট প্রয়োজন হবে এবং যদি ট্র্যাফিক স্থিতিশীল থাকে। | সস্তা (কম ট্রাফিক হলে), কন্ট্রোলড পারফরম্যান্স | স্কেলিংয়ের জন্য কনফিগারেশন পরিবর্তন করা দরকার। |
On-Demand | যখন আপনি জানেন না কতটুকু ট্রাফিক আসবে বা আপনি চাচ্ছেন স্বয়ংক্রিয়ভাবে স্কেল করতে। | অটো-স্কেলিং, সহজ ব্যবস্থাপনা | খরচ বেশি হতে পারে, নিয়ন্ত্রণ কম। |
DynamoDB-এর ক্ষমতা এবং আপনার অ্যাপ্লিকেশনের প্রয়োজনীয়তা অনুযায়ী এই দুটি মডেলের মধ্যে থেকে সঠিকটি বেছে নিন।
Amazon DynamoDB এ Table Scaling এবং Auto Scaling কনফিগারেশন একটি অত্যন্ত গুরুত্বপূর্ণ অংশ। DynamoDB এর স্কেলেবিলিটি বৈশিষ্ট্য নিশ্চিত করে যে আপনার ডেটাবেস অ্যাপ্লিকেশনটি হাই ট্রাফিক সময়ে পারফরম্যান্স বজায় রাখতে সক্ষম হয়, এবং স্বয়ংক্রিয়ভাবে সক্ষম হয় যখন প্রয়োজন হয় বেশি বা কম থ্রুপুট ক্ষমতার। এখানে আমরা DynamoDB এর Table Scaling এবং Auto Scaling কনফিগারেশন সম্পর্কে বিস্তারিত আলোচনা করব।
DynamoDB টেবিলের scaling মানে হল টেবিলের রিড এবং রাইট ক্যাপাসিটি ইউনিট (RCU, WCU) বৃদ্ধি বা কমানো। এটি দুটি মোডে কাজ করে:
এই মোডে, আপনি রিড এবং রাইট ক্যাপাসিটি ইউনিট নির্ধারণ করে দেন, যা টেবিলের ট্র্যাফিকের ভিত্তিতে আপনার প্রয়োজন হয়। এই পদ্ধতিতে আপনি যত রিড বা রাইট অপারেশন চাচ্ছেন, তত ইউনিট প্রদান করতে হবে।
যত বেশি রিড এবং রাইট ক্যাপাসিটি ইউনিট কনফিগার করবেন, তত বেশি ডেটা প্রোসেস করতে পারবেন। তবে এটি অতিরিক্ত খরচ হতে পারে।
এই মোডে, আপনি কোনও নির্দিষ্ট রিড বা রাইট ক্যাপাসিটি ইউনিট সেট না করে, ডেটাবেস স্বয়ংক্রিয়ভাবে রিড এবং রাইট অপারেশন ম্যানেজ করে। এই মোডে, ডেটাবেস আপনার ট্রাফিকের উপর ভিত্তি করে পারফরম্যান্স প্রদান করে, অর্থাৎ এটি স্বয়ংক্রিয়ভাবে স্কেল হয়।
Auto Scaling হল একটি বৈশিষ্ট্য যা আপনাকে DynamoDB টেবিলের রিড এবং রাইট ক্যাপাসিটি স্বয়ংক্রিয়ভাবে পরিচালনা করতে সাহায্য করে। এটি আপনার টেবিলের ব্যবহার অনুসারে ক্যাপাসিটি পরিবর্তন করে, যাতে আপনি অতিরিক্ত খরচ এড়িয়ে যেতে পারেন এবং একই সময়ে পারফরম্যান্স বজায় রাখতে পারেন।
AWS CLI বা API ব্যবহার করে Auto Scaling কনফিগার করা:
আপনি AWS CLI ব্যবহার করে DynamoDB টেবিলের জন্য Auto Scaling কনফিগার করতে পারেন। এখানে একটি উদাহরণ দেওয়া হল:
aws dynamodb update-table --table-name <TableName> --provisioned-throughput
ReadCapacityUnits=5,WriteCapacityUnits=5 --scaling-policy
TargetTrackingScalingPolicyConfiguration={
"TargetValue": 70.0,
"ScaleInCooldown": 300,
"ScaleOutCooldown": 300,
"MinimumCapacity": 5,
"MaximumCapacity": 100
}
এই কমান্ডটি Target Tracking স্কেলিং পলিসি ব্যবহার করে এবং আপনি রিড এবং রাইট ক্যাপাসিটি ইউনিটের জন্য মিনিমাম এবং ম্যাক্সিমাম মান নির্ধারণ করতে পারবেন।
বৈশিষ্ট্য | Provisioned Mode | Auto Scaling Mode |
---|---|---|
ক্যাপাসিটি নির্ধারণ | আপনি নিজেই রিড এবং রাইট ক্যাপাসিটি নির্ধারণ করেন। | স্বয়ংক্রিয়ভাবে ক্যাপাসিটি বৃদ্ধি বা কমানো হয়। |
স্কেলিং | স্কেল করতে হয় ম্যানুয়ালি। | স্বয়ংক্রিয়ভাবে স্কেল হয়। |
খরচ | অতিরিক্ত খরচ হতে পারে যদি ট্রাফিক হঠাৎ বাড়ে। | খরচ সামঞ্জস্যপূর্ণ, প্রয়োজন অনুসারে। |
ব্যবহার | স্থিতিশীল এবং পূর্বানুমানযোগ্য অ্যাপ্লিকেশন। | ডাইনামিক ট্রাফিক সহ অ্যাপ্লিকেশন। |
Auto Scaling DynamoDB টেবিলের জন্য অত্যন্ত উপকারী, কারণ এটি আপনার ডেটাবেসের ক্ষমতাকে স্বয়ংক্রিয়ভাবে পরিচালনা করতে সক্ষম, আপনার অ্যাপ্লিকেশনটিকে সঠিকভাবে স্কেল করতে সহায়তা করে এবং খরচ কমানোর সুযোগ প্রদান করে। Provisioned Mode অধিক নিয়ন্ত্রণ প্রদান করে কিন্তু ম্যানুয়াল স্কেলিংয়ের প্রয়োজন হয়।
এখন, আপনি DynamoDB টেবিলের scaling এবং auto scaling কনফিগারেশন সম্পর্কে জানতে পারলেন।
common.read_more